#define _CRT_SECURE_NO_WARNINGS
//struct ListNode* getIntersectionNode(struct ListNode* headA, struct ListNode* headB) {
//    struct ListNode* list1 = headA;
//    struct ListNode* list2 = headB;
//    int lenA = 0, lenB = 0;
//    while (list1) {
//        list1 = list1->next;
//        lenA++;
//    }
//    while (list2) {
//        list2 = list2->next;
//        lenB++;
//    }
//    int gap = abs(lenA - lenB);
//    struct ListNode* geratlist = headA;
//    struct ListNode* littlelist = headB;
//    if (lenA < lenB) {
//        geratlist = headB;
//        littlelist = headA;
//    }
//    while (gap--) {
//        geratlist = geratlist->next;
//    }
//    while (geratlist) {
//        if (geratlist == littlelist) {
//            return geratlist;
//        }
//        geratlist = geratlist->next;
//        littlelist = littlelist->next;
//    }
//    return NULL;
//}